<html>
<head>
<title>Convolution3D</title>
   <link rel="stylesheet" type="text/css" href="../../avisynth.css">
<!--
Automatically generated, don't change:
$Id: convolution3d.htm,v 1.1 2004/10/19 21:09:19 alex_e_basta Exp $ 
-->
</head>
<body>
<h1>Convolution3D</h1>
<h2>Sommario</h2>
<b>author:</b> Vlad59
<br><b>versions: - </b>1.01 (YUY2 version)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- beta 4 (YV12 version with temporal influence disabled)<br>
<b>download:</b> <a href="http://www.avisynth.org/warpenterprises/">http://www.avisynth.org/warpenterprises/</a><br>
<b>category:</b> Spatio-Temporal Smoothers
<br><b>requirements:</b>&nbsp;
<ul>
  <li>YV12 or YUY2 (dependent on version) colorspace</li>
  <li>ISSE support</li>
</ul>
<hr>
<h2>Descrizione</h2>
Convolution3D &egrave; un filtro avisynth che applica una convoluzione 3Da tutti 
i pixels di un frame. 
<h2>1 - Come si usa</h2>
<p><code>Convolution3d</code> (<var>matrix=0, ythresh=3, cthresh=4, t_ythresh=3, t_cthresh=4, influence=3,
debug=0</var>)</p>
<p><b>Scelta della Matrice </b> : <br>
  0 : matrice originale: <br>
  1 2 1&nbsp;&nbsp; 2 4 2&nbsp;&nbsp; 1 2 1<br>
  2 4 1&nbsp;&nbsp; 4 8 4&nbsp;&nbsp; 2 4 1<br>
  1 2 1&nbsp;&nbsp; 2 4 2&nbsp;&nbsp; 1 2 1<br>
  Questa matrice &egrave; utile per movie normali (non anime) perch&eacute; conserva 
  pi&ugrave; dettagli<br>
  1 : idea di bb di una matrice di 1(grande idea)<br>
  1 1 1&nbsp;&nbsp; 1 1 1&nbsp;&nbsp; 1 1 1<br>
  1 1 1&nbsp;&nbsp; 1 1 1&nbsp;&nbsp; 1 1 1<br>
  1 1 1&nbsp;&nbsp; 1 1 1&nbsp;&nbsp; 1 1 1<br>
  Questa matrice &egrave; assai utile con le anime o con sorgenti di cattiva qualit&agrave; 
  poich&eacute; blurra leggermente di pi&ugrave; ( rimuovendo in tal modo pi&ugrave; 
  rumore)</p>
<p><b>Influenza Temporale</b> :<br>
  E' usata principalmente per velocizzare leggermente il filtro e per evitare 
  di usare informazioni temporali quando non necessarie (scene change, fade, ...)<br>
  Per prima cosa viene stabilito un limite = Temporal Luma Threshold * Temporal 
  influence<br>
  Per ogni 2 pixel elaborati (a causa di MMX, 2 pixel alla volta), si testa questo:<br>
  if <br>
  (Abs (Y0 - Y0[Previous frame]) +<br>
  Abs (Y0 - Y0[Next frame]) +<br>
  Abs (Y1 - Y1[Previous frame]) +<br>
  Abs (Y1 - Y1[Next frame])) &gt; limit<br>
  then<br>
  do Spacial work (only 3*3 matrix)<br>
  Else<br>
  do Spacial and Temporal work (3*3*3 matrix)<br>
  Pi&ugrave; bassa &egrave; la Temporal -&gt; pi&ugrave; veloce sar&agrave; il 
  filtro, ma la compressibilit&agrave; sar&agrave; minore<br>
  Al contrario se pi&ugrave; alta -&gt; pi&ugrave; lento risulter&agrave; il filtro, 
  ma con compressibilit maggiore<br>
  Se la temporal influence &egrave; impostata a -1 viene attivato solo il filtraggio 
  spaziale (alta velocit&agrave;).<br>
  This parameter is a float.</p>
<h2>2 - Esempio di Parametri</h2>
<p>Per rendere le cose pi&ugrave; facili sono stati approntati i seguenti presets 
  :<br>
  <b>Convolution3d (preset=&quot;movieHQ&quot;)</b><strong> </strong>// Movie 
  Hi Quality (buon DVD source)<br>
  &egrave; un alias di Convolution3D (0, 3, 4, 3, 4, 2.8, 0) <br>
  <b>Convolution3d (preset=&quot;movieLQ&quot;)</b><strong> <em> </em> </strong>// 
  Movie Low Quality (noisy DVD source)<br>
  &egrave; un alias di Convolution3D (0, 6, 10, 6, 8, 2.8, 0) <br>
  <b>Convolution3d (preset=&quot;animeHQ&quot;)</b> // Anime Hi Quality (good 
  DVD source)<br>
  &egrave; un alias di Convolution3D (0, 6, 12, 6, 8, 2.8, 0) <br>
  <b>Convolution3d (preset=&quot;animeLQ&quot;)</b><strong> <em> </em> </strong>// 
  Anime Low Quality (noisy DVD source)<br>
  &egrave; un alias di Convolution3D (1, 8, 16, 8, 8, 2.8, 0) <br>
  <b>Convolution3d (preset=&quot;animeBQ&quot;)</b> // Anime Bad Quality (???)<br>
  &egrave; un alias di Convolution3D (1, 12, 22, 8, 8, 2.8, 0) <br>
  <b>Convolution3d (preset=&quot;vhsBQ&quot;)</b><strong> <em> </em> </strong>// 
  VHS capture Bad Quality (???)<br>
  &egrave; un alias di Convolution3D (0, 32, 128, 16, 64, 10, 0)</p>
<p>Ho testato Convolution3d con cattive catture TV nel qual caso si deve aumentare 
  specialmente le<br>
  chroma tresholds (causando per&ograve; un p&ograve; di ghosting ma la qualit&agrave; 
  generale sembra essere migliore).<br>
  Personalmente uso questi parametri :</p>
<pre>Convolution3D (0, 32, 128, 32, 128, 10, 0)</pre>
<p>Le thresholds di Convolution3d si prendono cura dei contorni e dei cambi di 
  scena. Potete aumentare quella spaziale (specialmente la chroma threshold) ma 
  fermatevi non appena vedete qualche blurring attorno i bordi (se volete qualit&agrave;). 
  Con i settings proposti non dovreste avere questo problema. <br>
  Per evitare il ghosting il valore Temporal lo si dovrebbe lasciare al di sotto 
  di 10.<br>
  Fate particolare attenzione al threshold con la matrice 1, poch&eacute; con 
  questa il frame corrente pesa meno per cui &egrave; pi&ugrave; facile avere 
  ghosting.</p>
<p>Ulteriori informazioni sul suo funzionamento in : <a href="http://forum.doom9.org/showthread.php?s=&threadid=29829">http://forum.doom9.org/showthread.php?s=&amp;threadid=29829</a></p>
<h2>3 - Attuali limitazioni o problemi conosciuti</h2>
<ul>
  <li>Funziona solo in YUV2, CHECKED.</li>
  <li>Richiede un a CPU capace di Integer SSE (n&egrave; PII n&egrave; K6-II), 
    CHECKED.</li>
</ul>

<h2>4 - Credits</h2>
<p>Thanks to<br>
  bb for the original idea and a lot of tests<br>
  iago, Koepi and TheReal for real full length movie (or capture) tests<br>
  Tom Barry, Dividee and Sh0dan for their usefull technicals informations or ideas<br>
  Ctrl-Alt-Suppr for a french tutorial<br>
  Defiler for hosting Convolution3d<br>
  all Convolution3D users</p>
<p>Vlad59 (babas.lucas@laposte.net)</p>
<h2>5 - License</h2>
<p>Copyright (c) 2002 S&eacute;bastien LUCAS. All rights reserved.<br>
  babas.lucas@laposte.net</p>
<p>This file is subject to the terms of the GNU General Public License as published by the Free Software Foundation. A copy of this license is
included with this software distribution in the file COPYING. If you do not have a copy, you may obtain a copy by writing to the Free
Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.</p>
<p><font size="-1">This software is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details<br>
  </font> </p>
<p><font size="-1"><kbd>$Date: 2004/10/19 21:09:19 $</kbd></font></p>
</body>
</html>
